package model.databases;

import java.io.File;
import java.io.IOException;
import org.apache.log4j.Logger;

import result.Result;
import model.thread.ThreadUtil;
import business.ViewLogger;
import business.iservices.FactoryBusinessSrv;
import utils.Configuration;

/**
 * Contiene metodos para iniciar las bases de datos a traves de los servicios de negocio
 * @author 53385255R
 *
 */
public class LoadDatabases {
	
	private static Logger _log = Logger.getLogger("LoadDatabases");
	
		
	/**
	 * Carga la base de datos sqlitecorp especificada
	 * @return el resultado de la accion
	 */
	public static boolean loadSqliteCorp(String sqlitePath) {
		boolean ok = false;
		try {
			File file = new File(sqlitePath);
			if (file.exists()) {
				Result<Object> res = FactoryBusinessSrv.getInstance().getDataBasesService().setSQLite(sqlitePath);
				ok = res.is_ok();
			} else ViewLogger.getInstance().error("El fichero '" + sqlitePath + "' no existe");
		} catch (Exception e) {
			_log.error(e);
			ViewLogger.getInstance().error("Error al cargar la base de datos de sqlitecorp " + sqlitePath);
		}
		
		return ok;
	}
	
	
	/**
	 * Carga la base de datos sqlNewCorps
	 * @return
	 */
	public static boolean loadSqlNewCorps(String sqlNewCorpsPath) {
		boolean ok = false;
		try {
			File file = new File(sqlNewCorpsPath);
			if (file.exists()) {
				Result<Object> res = FactoryBusinessSrv.getInstance().getDataBasesService().setNewCorps(sqlNewCorpsPath);
				ok = res.is_ok();
			} else ViewLogger.getInstance().error("El fichero '" + sqlNewCorpsPath + "' no existe");
		} catch (Exception e) {
			_log.error(e);
			ViewLogger.getInstance().error("Error al cargar la base de datos de sqlNewCorps " + sqlNewCorpsPath);
		}
		
		return ok;
	}
	
	/**
	 * Carga la base de datos maesorg
	 * @return
	 */
	public static boolean loadMaesorg(String maesorgPath) {
		boolean ok = false;
		try {
			File file = new File(maesorgPath);
			if (file.exists()) {
				Result<Object> res = FactoryBusinessSrv.getInstance().getDataBasesService().setMaesorg(maesorgPath);
				ok = res.is_ok();
			} else ViewLogger.getInstance().error("El fichero '" + maesorgPath + "' no existe");
		} catch (Exception e) {
			_log.error(e);
			ViewLogger.getInstance().error("Error al cargar la base de datos de maesorgPath " + maesorgPath);
		}
		
		return ok;
	}

	/**
	 * Carga la base de datos maescorp
	 * @return
	 */
	public static boolean loadMaescorp(String maescorpPath) {
		boolean ok = false;
		try {
			File file = new File(maescorpPath);
			if (file.exists()) {
				Result<Object> res = FactoryBusinessSrv.getInstance().getDataBasesService().setMaescorp(maescorpPath);
				ok = res.is_ok();
			} else ViewLogger.getInstance().error("El fichero '" + maescorpPath + "' no existe");
		} catch (Exception e) {
			_log.error(e);
			ViewLogger.getInstance().error("Error al cargar la base de datos de maescorpPath " + maescorpPath);
		}
		
		return ok;
	}

	
	
	
	
}
